package emp.jsf.servicio.impl;

import java.util.Date;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import emp.entidades.EntPedido;
import emp.entidades.EntCategoria;
import emp.entidades.EntMarca;
import emp.entidades.EntUnidadMedida;
import emp.jsf.servicio.PedidoService;
import emp.repositorios.PedidoRepository;

@Service("pedidoService")
public class PedidoServiceImpl  implements PedidoService{
	
	@Autowired
	PedidoRepository pedidoRepository;
	
	@Transactional
	@Override
	public List<EntPedido> listarPedidos(){
		List<EntPedido> lista;
		lista=pedidoRepository.listaPedidoActivoWeb();
		
		for(EntPedido a:lista){
			a.getEntCliente().getRazonSocial();
			a.getEntTipoDocumento().getDescripcion();
			a.getEntMoneda().getDescripcion();
		}
		return lista;	
	}
	
	@Transactional
	@Override
	public EntPedido listaPedidoPorCodigo(long idPedido){
		EntPedido pedido;
		pedido=pedidoRepository.findOne(idPedido);
		
		pedido.getEntCliente().getRazonSocial();
		pedido.getEntTipoDocumento().getDescripcion();
		pedido.getEntMoneda().getDescripcion();
		pedido.getEntCourier().getNombre();
		
		return pedido;
	}
	
	public EntPedido grabarPedido(EntPedido ent){
		return pedidoRepository.saveAndFlush(ent);
	}
	
	public void eliminar(EntPedido ent){
		pedidoRepository.delete(ent);
	}
	
	@Transactional
	public void aceptarPedido(long idPedido, int estado, Date fechaAceptado, String observacion){
		pedidoRepository.aceptaPedido(idPedido, estado, fechaAceptado, observacion);
	}

}
